<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxGeometryQuery Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classPxGeometryQuery.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classPxGeometryQuery-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PxGeometryQuery Class Reference<div class="ingroups"><a class="el" href="group__geomutils.html">Geomutils</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Collection of geometry object queries (sweeps, raycasts, overlaps, ...).  
 <a href="classPxGeometryQuery.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="PxGeometryQuery_8h_source.html">PxGeometryQuery.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a574970e722f882778a250c51f77b5b85"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxGeometryQuery.html#a574970e722f882778a250c51f77b5b85">sweep</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;unitDir, const PxReal maxDist, const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom0, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose0, const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom1, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose1, <a class="el" href="structPxSweepHit.html">PxSweepHit</a> &amp;sweepHit, PxHitFlags hitFlags=<a class="el" href="structPxHitFlag.html#a44c173f6ddf0522ffbd8fa3c585e6b64afbdec54374d753fed4682d855aac7270">PxHitFlag::eDEFAULT</a>, const PxReal inflation=0.f)</td></tr>
<tr class="memdesc:a574970e722f882778a250c51f77b5b85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sweep a specified geometry object in space and test for collision with a given object.  <a href="#a574970e722f882778a250c51f77b5b85">More...</a><br /></td></tr>
<tr class="separator:a574970e722f882778a250c51f77b5b85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62d7a791dba43d475d96a28571f585b4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxGeometryQuery.html#a62d7a791dba43d475d96a28571f585b4">overlap</a> (const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom0, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose0, const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom1, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose1)</td></tr>
<tr class="memdesc:a62d7a791dba43d475d96a28571f585b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overlap test for two geometry objects.  <a href="#a62d7a791dba43d475d96a28571f585b4">More...</a><br /></td></tr>
<tr class="separator:a62d7a791dba43d475d96a28571f585b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79e90c0d753b17536aa1b8d1f2f29baa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxGeometryQuery.html#a79e90c0d753b17536aa1b8d1f2f29baa">raycast</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;origin, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;unitDir, const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose, PxReal maxDist, PxHitFlags hitFlags, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> maxHits, <a class="el" href="structPxRaycastHit.html">PxRaycastHit</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a> rayHits)</td></tr>
<tr class="memdesc:a79e90c0d753b17536aa1b8d1f2f29baa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raycast test against a geometry object.  <a href="#a79e90c0d753b17536aa1b8d1f2f29baa">More...</a><br /></td></tr>
<tr class="separator:a79e90c0d753b17536aa1b8d1f2f29baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb75659cb117228b3ed8585250cdb65e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxGeometryQuery.html#acb75659cb117228b3ed8585250cdb65e">computePenetration</a> (<a class="el" href="classPxVec3.html">PxVec3</a> &amp;direction, PxF32 &amp;depth, const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom0, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose0, const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom1, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose1)</td></tr>
<tr class="memdesc:acb75659cb117228b3ed8585250cdb65e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute minimum translational distance (MTD) between two geometry objects.  <a href="#acb75659cb117228b3ed8585250cdb65e">More...</a><br /></td></tr>
<tr class="separator:acb75659cb117228b3ed8585250cdb65e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a248da4b70cd35bd32d4481775b4c9821"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> PxReal&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxGeometryQuery.html#a248da4b70cd35bd32d4481775b4c9821">pointDistance</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;point, const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose, <a class="el" href="classPxVec3.html">PxVec3</a> *closestPoint=NULL)</td></tr>
<tr class="memdesc:a248da4b70cd35bd32d4481775b4c9821"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes distance between a point and a geometry object.  <a href="#a248da4b70cd35bd32d4481775b4c9821">More...</a><br /></td></tr>
<tr class="separator:a248da4b70cd35bd32d4481775b4c9821"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac80fbc6fd9c2315aee6dddc9c1e9795"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> <a class="el" href="classPxBounds3.html">PxBounds3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxGeometryQuery.html#aac80fbc6fd9c2315aee6dddc9c1e9795">getWorldBounds</a> (const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;pose, float inflation=1.01f)</td></tr>
<tr class="memdesc:aac80fbc6fd9c2315aee6dddc9c1e9795"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the bounds for a geometry object  <a href="#aac80fbc6fd9c2315aee6dddc9c1e9795">More...</a><br /></td></tr>
<tr class="separator:aac80fbc6fd9c2315aee6dddc9c1e9795"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d05e22a063ff742214c3ad9f48ff209"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxGeometryQuery.html#a6d05e22a063ff742214c3ad9f48ff209">isValid</a> (const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;geom)</td></tr>
<tr class="memdesc:a6d05e22a063ff742214c3ad9f48ff209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if provided geometry is valid.  <a href="#a6d05e22a063ff742214c3ad9f48ff209">More...</a><br /></td></tr>
<tr class="separator:a6d05e22a063ff742214c3ad9f48ff209"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Collection of geometry object queries (sweeps, raycasts, overlaps, ...). </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="acb75659cb117228b3ed8585250cdb65e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb75659cb117228b3ed8585250cdb65e">&#9670;&nbsp;</a></span>computePenetration()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool PxGeometryQuery::computePenetration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>direction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PxF32 &amp;&#160;</td>
          <td class="paramname"><em>depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute minimum translational distance (MTD) between two geometry objects. </p>
<p>All combinations of geom objects are supported except:</p><ul>
<li>plane/plane</li>
<li>plane/mesh</li>
<li>plane/heightfield</li>
<li>mesh/mesh</li>
<li>mesh/heightfield</li>
<li>heightfield/heightfield</li>
</ul>
<p>The function returns a unit vector ('direction') and a penetration depth ('depth').</p>
<p>The depenetration vector D = direction * depth should be applied to the first object, to get out of the second object.</p>
<p>Returned depth should always be positive or null.</p>
<p>If objects do not overlap, the function can not compute the MTD and returns false.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">direction</td><td>Computed MTD unit direction </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">depth</td><td>Penetration depth. Always positive or null. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geom0</td><td>The first geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose0</td><td>Pose of the first geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geom1</td><td>The second geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose1</td><td>Pose of the second geometry object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the MTD has successfully been computed, i.e. if objects do overlap.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxGeometry.html" title="A geometry object. ">PxGeometry</a> <a class="el" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector ">PxTransform</a> </dd></dl>

</div>
</div>
<a id="aac80fbc6fd9c2315aee6dddc9c1e9795"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac80fbc6fd9c2315aee6dddc9c1e9795">&#9670;&nbsp;</a></span>getWorldBounds()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> <a class="el" href="classPxBounds3.html">PxBounds3</a> PxGeometryQuery::getWorldBounds </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>inflation</em> = <code>1.01f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>get the bounds for a geometry object </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geom</td><td>The geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose</td><td>Pose of the geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inflation</td><td>Scale factor for computed world bounds. Box extents are multiplied by this value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The bounds of the object</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxGeometry.html" title="A geometry object. ">PxGeometry</a> <a class="el" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector ">PxTransform</a> </dd></dl>

<p class="reference">Referenced by <a class="el" href="classPxShapeExt.html#a71b7808c2c0623fe264f7973be837897">PxShapeExt::getWorldBounds()</a>.</p>

</div>
</div>
<a id="a6d05e22a063ff742214c3ad9f48ff209"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d05e22a063ff742214c3ad9f48ff209">&#9670;&nbsp;</a></span>isValid()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool PxGeometryQuery::isValid </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks if provided geometry is valid. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geom</td><td>The geometry object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if geometry is valid.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxGeometry.html" title="A geometry object. ">PxGeometry</a> <a class="el" href="classPxSphereGeometry.html" title="A class representing the geometry of a sphere. ">PxSphereGeometry</a>, <a class="el" href="classPxCapsuleGeometry.html" title="Class representing the geometry of a capsule. ">PxCapsuleGeometry</a>, <a class="el" href="classPxBoxGeometry.html" title="Class representing the geometry of a box. ">PxBoxGeometry</a>, PxConvexGeometry </dd></dl>

</div>
</div>
<a id="a62d7a791dba43d475d96a28571f585b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62d7a791dba43d475d96a28571f585b4">&#9670;&nbsp;</a></span>overlap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool PxGeometryQuery::overlap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Overlap test for two geometry objects. </p>
<p>All combinations are supported except: </p><ul>
<li><a class="el" href="classPxPlaneGeometry.html" title="Class describing a plane geometry. ">PxPlaneGeometry</a> vs. {<a class="el" href="classPxPlaneGeometry.html" title="Class describing a plane geometry. ">PxPlaneGeometry</a>, <a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a>, <a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a>} </li>
<li><a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a> vs. {<a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a>, <a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a>} </li>
<li><a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a> vs. {<a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a>}</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">geom0</td><td>The first geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose0</td><td>Pose of the first geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geom1</td><td>The second geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose1</td><td>Pose of the second geometry object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the two geometry objects overlap</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxGeometry.html" title="A geometry object. ">PxGeometry</a> <a class="el" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector ">PxTransform</a> </dd></dl>

<p class="reference">Referenced by <a class="el" href="classPxShapeExt.html#affe9828effe773b79ab836691b72d62a">PxShapeExt::overlap()</a>.</p>

</div>
</div>
<a id="a248da4b70cd35bd32d4481775b4c9821"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a248da4b70cd35bd32d4481775b4c9821">&#9670;&nbsp;</a></span>pointDistance()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> PxReal PxGeometryQuery::pointDistance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> *&#160;</td>
          <td class="paramname"><em>closestPoint</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computes distance between a point and a geometry object. </p>
<p>Currently supported geometry objects: box, sphere, capsule, convex.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>The point P </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geom</td><td>The geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose</td><td>Pose of the geometry object </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">closestPoint</td><td>Optionally returned closest point to P on the geom object. Only valid when returned distance is strictly positive. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Square distance between the point and the geom object, or 0.0 if the point is inside the object, or -1.0 if the geometry type is not supported.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxGeometry.html" title="A geometry object. ">PxGeometry</a> <a class="el" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector ">PxTransform</a> </dd></dl>

</div>
</div>
<a id="a79e90c0d753b17536aa1b8d1f2f29baa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79e90c0d753b17536aa1b8d1f2f29baa">&#9670;&nbsp;</a></span>raycast()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxGeometryQuery::raycast </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>unitDir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PxReal&#160;</td>
          <td class="paramname"><em>maxDist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PxHitFlags&#160;</td>
          <td class="paramname"><em>hitFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
          <td class="paramname"><em>maxHits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPxRaycastHit.html">PxRaycastHit</a> *<a class="el" href="group__foundation.html#ga3b15bb2f7697b2bed10eb5477909fbe4">PX_RESTRICT</a>&#160;</td>
          <td class="paramname"><em>rayHits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Raycast test against a geometry object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td>The origin of the ray to test the geometry object against </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">unitDir</td><td>Normalized direction of the ray to test the geometry object against </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geom</td><td>The geometry object to test the ray against </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose</td><td>Pose of the geometry object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxDist</td><td>Maximum ray length, has to be in the [0, inf) range </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hitFlags</td><td>Specification of the kind of information to retrieve on hit. Combination of <a class="el" href="structPxHitFlag.html" title="Scene query and geometry query behavior flags. ">PxHitFlag</a> flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxHits</td><td>max number of returned hits = size of 'rayHits' buffer </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rayHits</td><td>Raycast hits information </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of hits between the ray and the geometry object</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxRaycastHit.html" title="Stores results of raycast queries. ">PxRaycastHit</a> <a class="el" href="classPxGeometry.html" title="A geometry object. ">PxGeometry</a> <a class="el" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector ">PxTransform</a> </dd></dl>

<p class="reference">Referenced by <a class="el" href="classPxShapeExt.html#aa96a6b923cccd8bf680d4bf9fb8aee2d">PxShapeExt::raycast()</a>.</p>

</div>
</div>
<a id="a574970e722f882778a250c51f77b5b85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a574970e722f882778a250c51f77b5b85">&#9670;&nbsp;</a></span>sweep()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__common.html#ga87ae1d60bdf83754e2fe5065aab40ec4">PX_PHYSX_COMMON_API</a> bool PxGeometryQuery::sweep </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
          <td class="paramname"><em>unitDir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const PxReal&#160;</td>
          <td class="paramname"><em>maxDist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxGeometry.html">PxGeometry</a> &amp;&#160;</td>
          <td class="paramname"><em>geom1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
          <td class="paramname"><em>pose1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPxSweepHit.html">PxSweepHit</a> &amp;&#160;</td>
          <td class="paramname"><em>sweepHit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PxHitFlags&#160;</td>
          <td class="paramname"><em>hitFlags</em> = <code><a class="el" href="structPxHitFlag.html#a44c173f6ddf0522ffbd8fa3c585e6b64afbdec54374d753fed4682d855aac7270">PxHitFlag::eDEFAULT</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const PxReal&#160;</td>
          <td class="paramname"><em>inflation</em> = <code>0.f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sweep a specified geometry object in space and test for collision with a given object. </p>
<p>The following combinations are supported.</p>
<ul>
<li><a class="el" href="classPxSphereGeometry.html" title="A class representing the geometry of a sphere. ">PxSphereGeometry</a> vs. {<a class="el" href="classPxSphereGeometry.html" title="A class representing the geometry of a sphere. ">PxSphereGeometry</a>, <a class="el" href="classPxPlaneGeometry.html" title="Class describing a plane geometry. ">PxPlaneGeometry</a>, <a class="el" href="classPxCapsuleGeometry.html" title="Class representing the geometry of a capsule. ">PxCapsuleGeometry</a>, <a class="el" href="classPxBoxGeometry.html" title="Class representing the geometry of a box. ">PxBoxGeometry</a>, <a class="el" href="classPxConvexMeshGeometry.html" title="Convex mesh geometry class. ">PxConvexMeshGeometry</a>, <a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a>, <a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a>} </li>
<li><a class="el" href="classPxCapsuleGeometry.html" title="Class representing the geometry of a capsule. ">PxCapsuleGeometry</a> vs. {<a class="el" href="classPxSphereGeometry.html" title="A class representing the geometry of a sphere. ">PxSphereGeometry</a>, <a class="el" href="classPxPlaneGeometry.html" title="Class describing a plane geometry. ">PxPlaneGeometry</a>, <a class="el" href="classPxCapsuleGeometry.html" title="Class representing the geometry of a capsule. ">PxCapsuleGeometry</a>, <a class="el" href="classPxBoxGeometry.html" title="Class representing the geometry of a box. ">PxBoxGeometry</a>, <a class="el" href="classPxConvexMeshGeometry.html" title="Convex mesh geometry class. ">PxConvexMeshGeometry</a>, <a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a>, <a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a>} </li>
<li><a class="el" href="classPxBoxGeometry.html" title="Class representing the geometry of a box. ">PxBoxGeometry</a> vs. {<a class="el" href="classPxSphereGeometry.html" title="A class representing the geometry of a sphere. ">PxSphereGeometry</a>, <a class="el" href="classPxPlaneGeometry.html" title="Class describing a plane geometry. ">PxPlaneGeometry</a>, <a class="el" href="classPxCapsuleGeometry.html" title="Class representing the geometry of a capsule. ">PxCapsuleGeometry</a>, <a class="el" href="classPxBoxGeometry.html" title="Class representing the geometry of a box. ">PxBoxGeometry</a>, <a class="el" href="classPxConvexMeshGeometry.html" title="Convex mesh geometry class. ">PxConvexMeshGeometry</a>, <a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a>, <a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a>} </li>
<li><a class="el" href="classPxConvexMeshGeometry.html" title="Convex mesh geometry class. ">PxConvexMeshGeometry</a> vs. {<a class="el" href="classPxSphereGeometry.html" title="A class representing the geometry of a sphere. ">PxSphereGeometry</a>, <a class="el" href="classPxPlaneGeometry.html" title="Class describing a plane geometry. ">PxPlaneGeometry</a>, <a class="el" href="classPxCapsuleGeometry.html" title="Class representing the geometry of a capsule. ">PxCapsuleGeometry</a>, <a class="el" href="classPxBoxGeometry.html" title="Class representing the geometry of a box. ">PxBoxGeometry</a>, <a class="el" href="classPxConvexMeshGeometry.html" title="Convex mesh geometry class. ">PxConvexMeshGeometry</a>, <a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a>, <a class="el" href="classPxHeightFieldGeometry.html" title="Height field geometry class. ">PxHeightFieldGeometry</a>}</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">unitDir</td><td>Normalized direction along which object geom0 should be swept </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">maxDist</td><td>Maximum sweep distance, has to be in the [0, inf) range </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geom0</td><td>The geometry object to sweep. Supported geometries are <a class="el" href="classPxSphereGeometry.html" title="A class representing the geometry of a sphere. ">PxSphereGeometry</a>, <a class="el" href="classPxCapsuleGeometry.html" title="Class representing the geometry of a capsule. ">PxCapsuleGeometry</a>, <a class="el" href="classPxBoxGeometry.html" title="Class representing the geometry of a box. ">PxBoxGeometry</a> and <a class="el" href="classPxConvexMeshGeometry.html" title="Convex mesh geometry class. ">PxConvexMeshGeometry</a> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose0</td><td>Pose of the geometry object to sweep </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">geom1</td><td>The geometry object to test the sweep against </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pose1</td><td>Pose of the geometry object to sweep against </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">sweepHit</td><td>The sweep hit information. Only valid if this method returns true. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hitFlags</td><td>Specify which properties per hit should be computed and written to result hit array. Combination of <a class="el" href="structPxHitFlag.html" title="Scene query and geometry query behavior flags. ">PxHitFlag</a> flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inflation</td><td>Surface of the swept shape is additively extruded in the normal direction, rounding corners and edges.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the swept geometry object geom0 hits the object geom1</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxSweepHit.html" title="Stores results of sweep queries. ">PxSweepHit</a> <a class="el" href="classPxGeometry.html" title="A geometry object. ">PxGeometry</a> <a class="el" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector ">PxTransform</a> </dd></dl>

<p class="reference">Referenced by <a class="el" href="classPxShapeExt.html#a9fb19195f3ac80b6ab55fd0aa7a41cf3">PxShapeExt::sweep()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxGeometryQuery_8h_source.html">PxGeometryQuery.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classPxGeometryQuery.html">PxGeometryQuery</a></li>
    <li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
  </ul>
</div>
</body>
</html>
